package com.taoyibao.hongcanting.interfaces;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.webkit.JavascriptInterface;

import com.taoyibao.hongcanting.utils.LogUtils;

/**
 * @author TangAnna
 * @description: 与Js进行交互使用到的回调类
 * @date :${DATA} 11:24
 */
public class WebInteraction {

    private Activity mActivity;
    private InterfaceH5MapTable mInterfaceH5MapTable;
    private InterfaceH5Close mInterfaceH5Close;

    public WebInteraction(Activity context) {
        mActivity = context;
    }

    public void setInterfaceH5MapTable(InterfaceH5MapTable interfaceH5MapTable) {
        mInterfaceH5MapTable = interfaceH5MapTable;
    }

    /**
     * 获取桌位的信息
     * 供给Jscript使用的方法
     * 方法名要和Js中调用的方法名保持一致
     *
     * @param seat_id         1.seat_id = 0 ； 为舞台点击事件；seat_id！= 0 为桌位点击事件。
     * @param isSeated        2. isSeated = 0 没人入座； isSeated = 1 当前点击是自己的桌位； isSeated = 2 别人桌位 替人买单；
     * @param membersData     3.membersData 如果有值为 已入坐；等于undefined 当前没入座；
     * @param table_parameter 4.table_parameter当前桌位的信息；
     */
    @SuppressLint("JavascriptInterface")
    @JavascriptInterface
    public void setTableValue(String seat_id, String isSeated, String membersData, String table_parameter) {
        LogUtils.dNormal("webView  seat_id==", seat_id);
        LogUtils.dNormal("webView  isSeated==", isSeated);
        LogUtils.dNormal("webView  membersData==", membersData);
        LogUtils.dNormal("webView  table_parameter==", table_parameter);

        if (mInterfaceH5MapTable != null) {
            mInterfaceH5MapTable.getTableValue(seat_id, isSeated, membersData, table_parameter);
        }
    }

    /**
     * 暴露给H5调用的关闭方法
     */
    @SuppressLint("JavascriptInterface")
    @JavascriptInterface
    public void close() {
        if (mInterfaceH5Close != null) {
            mInterfaceH5Close.onClose();
        } else {
            mActivity.finish();
        }
    }

    private InterfaceH5Leaderboard mH5Leaderboard;

    /**
     * 设置排行榜的回调
     *
     * @param h5Leaderboard
     */
    public void setH5Leaderboard(InterfaceH5Leaderboard h5Leaderboard) {
        mH5Leaderboard = h5Leaderboard;
    }

    /**
     * 暴露给H5调用的排行榜的方法
     *
     * @param value 1:充值排行日榜 2：消费排行日榜  3：充值排行总榜 4：消费排行总榜
     */
    @SuppressLint("JavascriptInterface")
    @JavascriptInterface
    public void setLeaderboardValue(String value) {
        if (mH5Leaderboard != null) {
            mH5Leaderboard.getLeaderboardValue(value);
        }
    }


    /**
     * 关闭事件的回调
     *
     * @param interfaceH5Close
     */
    public void setInterfaceH5Close(InterfaceH5Close interfaceH5Close) {
        mInterfaceH5Close = interfaceH5Close;
    }


}
